package com.turing.post.antimoney.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * @author zxp
 * @Mar 27, 2013
 */
@Remote
@Local
public interface SuspiciousReportDao {

	/**
	 * 新增
	 * 
	 * @param sr
	 * @throws PCPSApplicationException
	 */
	public void insert(SuspiciousReport sr) throws PCPSApplicationException;

	/**
	 * 修改
	 * 
	 * @param sr
	 * @throws PCPSApplicationException
	 */
	public void updateSuspiciousReport(SuspiciousReport sr)
			throws PCPSApplicationException;

	/**
	 * 根据日期发卡商获取批次号
	 * 
	 * @param date
	 * @param icNo
	 * @return
	 */
	public String getSuspiciousReportBatchNoByReportDate(String date,
			String icNo);

	/**
	 * 根据主键查询
	 * 
	 * @param id
	 * @return
	 * @throws PCPSApplicationException
	 */
	public SuspiciousReport getSuspiciousReportById(BigInteger id);

	/**
	 * 根据主键和上报状态查询
	 * 
	 * @param id
	 * @return
	 * @throws PCPSApplicationException
	 */
	public SuspiciousReport getSuspiciousReportByIdandStatus(
			PCPSWebInput webInput, BigInteger id, String reportStatus);

	/**
	 * 根据条件查询可疑交易报告表清单
	 * 
	 * @param startdate
	 *            起始时间
	 * @param senddate
	 *            终止时间
	 * @param reportstatus
	 *            报告状态
	 * @param orxn
	 *            报告名称
	 */
	public List<SuspiciousReport> getSuspiciousReportByCondition(
			PCPSWebInput webInput, String startdate, String enddate,
			String reportstatus, String orxn, Integer page);

	/**
	 * 根据条件查询可疑交易报告表清单总数
	 * 
	 * @param startdate
	 *            起始时间
	 * @param senddate
	 *            终止时间
	 * @param reportstatus
	 *            报告状态
	 * @param orxn
	 *            报告名称
	 */
	public BigInteger getSuspiciousReportByConditionTotal(
			PCPSWebInput webInput, String startdate, String enddate,
			String reportstatus, String orxn);
}
